package modelo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


public class ProductoDAO {

	public ProductoDAO() {
		super();
		
	}
	

	public void registrarProducto(Producto producto) {
		String tiraSQL = "INSERT INTO producto "+
		 				 "(codigo, riftienda, nombre, precio, status) "+
		 				 "VALUES ('" + producto.getCodigo() + "','"
		 				 	+ producto.getRifTienda() + "','" 
		 				    + producto.getNombre() + "',"
		 				      + producto.getPrecio() + ",'" 
		 				     + producto.getStatus() +"')";
		System.out.println(tiraSQL);
		
		Conexion.ejecutar(tiraSQL);
	}
		
	public ArrayList<Producto> consultarProducto(String rif) {

		ArrayList<Producto> productos = new ArrayList<Producto>();
		String tiraSQL = "SELECT * FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				String riftienda = resultSet.getString("riftienda");
				
				if (riftienda.equalsIgnoreCase(rif)) {
				
				String cod = resultSet.getString("codigo");
				String nombre = resultSet.getString("NOMBRE");
				float precio = resultSet.getFloat("precio");
				String status = resultSet.getString("status");
				
				Producto producto = new Producto (cod, riftienda, nombre, precio, status);
				productos.add(producto);
		
				}	
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return productos;
	}	
	
	
	public Producto buscarExistenciaProducto(String riftienda, String cod) {
		Producto producto = new Producto();
		String tiraSQL = "SELECT * FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				String codigo = resultSet.getString("codigo");
				String  rif = resultSet.getString("riftienda");
				
				if (rif.equalsIgnoreCase(riftienda) && codigo.equalsIgnoreCase(cod)){
				
					String nombre = resultSet.getString("nombre");
				    float precio = resultSet.getFloat("precio");
				    String status = resultSet.getString("status");
				
				producto = new Producto (codigo, rif, nombre, precio, status);
				return producto;
		
				}
				
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}	
	
	
public int numeroProducto() {
		
		int cont = 0;
		String tiraSQL = "SELECT * FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				cont++;
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return cont;
	}	
	

 public List<String> nombreTiendas() {
	
	List<String> nompr = new ArrayList<String>();
	String tiraSQL = "SELECT * FROM producto";
	ResultSet resultSet = Conexion.consultar(tiraSQL);		
	try {
		while (resultSet.next()) {
			
			String nombre = resultSet.getString("nombre");
			
			nompr.add(nombre);
		}
		
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return nompr;
}
	


 public List<String> productoPorTienda(String rif) {
	
	List<String> nompr = new ArrayList<String>();
	String tiraSQL = "SELECT * FROM producto";
	ResultSet resultSet = Conexion.consultar(tiraSQL);		
	try {
		while (resultSet.next()) {
			
			
			String nombre = resultSet.getString("riftienda");
			
			if(nombre.equalsIgnoreCase(rif)){
				
				String nom = resultSet.getString("nombre");
				nompr.add(nom);	
			}
		}
		
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return nompr;
}

 
 
 public Producto producto(String rif) {
	
	 Producto producto = new Producto();
	 
	String tiraSQL = "SELECT * FROM producto";
	ResultSet resultSet = Conexion.consultar(tiraSQL);		
	try {
		while (resultSet.next()) {
			
			String ncod = resultSet.getString("codigo");
			
			if(ncod.equalsIgnoreCase(rif)){
				
				String cod = resultSet.getString("codigo");
				String nombre = resultSet.getString("NOMBRE");
				float precio = resultSet.getFloat("precio");
				String status = resultSet.getString("status");
				String riftienda = resultSet.getString("riftienda");
				
				producto = new Producto(cod, riftienda, nombre, precio, status);
				return producto;
			}
		}
		
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return null;
}
 
 

  public ArrayList<Producto> productoSettear(List<String> nom) {
		
	 ArrayList<Producto> productos = new ArrayList<Producto>();
	 
	String tiraSQL = "SELECT * FROM producto";
	ResultSet resultSet = Conexion.consultar(tiraSQL);		
	try {
		while (resultSet.next()) {
			
			String ncod = resultSet.getString("nombre");
			int i =0;
			
			
			while (i < nom.size()){
				
				if (nom.get(i) == ncod){
					System.out.println(tiraSQL);
					String cod = resultSet.getString("codigo");
					String nombre = resultSet.getString("nombre");
					float precio = resultSet.getFloat("precio");
					String status = resultSet.getString("status");
					String riftienda = resultSet.getString("riftienda");
					
					Producto producto = new Producto(cod, riftienda, nombre, precio, status);
					productos.add(producto);
					
				}
				 i++;
			}
		}
		
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return productos;
}

  
  
  public ArrayList<Producto> productoMostrar(List<String> nom) {
		
		 ArrayList<Producto> productos = new ArrayList<Producto>();
		 
		String tiraSQL = "SELECT * FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				String ncod = resultSet.getString("codigo");
				int i =0;
				
				
				while (i < nom.size()){
					
					if (nom.get(i) == ncod){
						System.out.println(tiraSQL);
						String cod = resultSet.getString("codigo");
						String nombre = resultSet.getString("nombre");
						float precio = resultSet.getFloat("precio");
						String status = resultSet.getString("status");
						String riftienda = resultSet.getString("riftienda");
						
						Producto producto = new Producto(cod, riftienda, nombre, precio, status);
						productos.add(producto);
						
					}
					 i++;
				}
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return productos;
	}

 
  public String codigoDelProducto(String rif) {
		
		String nompr = "";
		String tiraSQL = "SELECT * FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				
				String nombre = resultSet.getString("nombre");
				
				if(nombre.equalsIgnoreCase(rif)){
					
					nompr = resultSet.getString("codigo");
					return nompr;	
				}
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return nompr;
	}
  
  
  
  
}
